﻿using System;
using Animals.Model;
using System.Collections.Generic;
using Dogs.Model;
namespace Dogs
{
    interface AnimalFacade
    {
        Animal AddAnimal(string Name, DateTime BirthDate, bool Gender, long FatherId, long MotherId);

        bool isEffectiveDate(DateTime date);

        Animal AddOrUpdateAnimal(Animals.Model.Animal animal, bool isNewAnimal);

        void DeleteAnimal(long id);

        SortedDictionary<long, string> GetAllAnimals();

        SortedDictionary<long, string> GetAllFemaleAnimals();

        SortedDictionary<long, string> GetAllMaleAnimals();

        Animal GetAnimalById(long Id);

        SortedDictionary<long, string> GetAnimalsByDate(DateTime BirthDate);

        ParentsPair GetParentsById(long Id);

        Animal UpdateAnimal(Animals.Model.Animal animal);

        Animal UpdateAnimal(long id, string Name, DateTime BirthDate, bool Gender, long FatherId, long MotherId);
    }
}
